package com.vtuzx.kingdee.xqc_api.service;

import com.vtuzx.core.VtuzxException;
import com.vtuzx.core.bean.dto.VtuzxMap;
import com.vtuzx.web.bean.VtuzxDownloadBean;
import org.bson.types.ObjectId;

import java.util.List;
import java.util.Map;

/**
 * 其他出入库服务
 */
public interface IXqcTrayService {


    VtuzxMap getTrayList(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getMaterialBoxNoTray(ObjectId userId, String name, Map<String, Object> param) throws VtuzxException;

    VtuzxMap getMaterialRfidTray(ObjectId userId, String name, Map<String, Object> param) throws VtuzxException;

    void addTrayBox(ObjectId userId, String name, Map<String, Object> param) throws VtuzxException;

    void createTrayBill(ObjectId userId, String name, Map<String, Object> param) throws VtuzxException;

    VtuzxMap getUserMaterialListTray(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getUserBoxListTray(ObjectId userId, String name, Map<String, Object> param);

    void deleteUserMaterialTray(ObjectId userId, String name, Map<String, Object> param);

    void deleteUserBoxTray(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getTrayBindList(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getTrayBindDetail(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getTrayBindDetailBox(ObjectId userId, String name, Map<String, Object> param);

    void bindTrayRfid(String boxNo, String rfid) throws VtuzxException;

    VtuzxDownloadBean downloadTrayList(ObjectId userId, Map<String, Object> param) throws Exception;

    VtuzxMap scanTray(ObjectId userId, String name, Map<String, Object> param) throws VtuzxException;

    VtuzxMap trayInventory(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getTrayInventoryList(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap getTrayInventoryDetail(ObjectId userId, String name, Map<String, Object> param);

    VtuzxMap downloadTrayInventoryList(ObjectId userId, Map<String, Object> param) throws Exception;
}
